import axios from 'axios';
import { getExchangeLinkUrl } from '@/config/api';

// 调用交换链接接口
export const exchangeLink = async (mode, keyBase64, accessToken) => {
  console.log('=== exchangeLink 服务开始执行 ===');
  console.log('输入参数:', { mode, keyBase64, accessToken });
  
  const url = getExchangeLinkUrl();
  console.log('请求URL:', url);
  
  const requestParams = {
    mode,
    keyBase64
  };
  console.log('请求参数:', requestParams);
  
  // 构建请求头
  const headers = {
    'Content-Type': 'application/json'
  };
  
  // 如果有 accessToken，添加到请求头中
  if (accessToken) {
    headers['Authorization'] = `Bearer ${accessToken}`;
    console.log('添加Authorization头:', headers['Authorization']);
  } else {
    console.log('未提供accessToken，跳过Authorization头设置');
  }
  
  try {
    console.log('发送HTTP GET请求...');
    console.log('请求配置:', {
      method: 'GET',
      url: url,
      params: requestParams,
      headers: headers
    });
    
    const response = await axios.get(url, { 
      params: requestParams,
      headers: headers
    });
    
    console.log('HTTP请求成功，响应状态:', response.status);
    console.log('响应头:', response.headers);
    console.log('响应数据:', response.data);
    
    if (response.data.code === '200') {
      console.log('接口返回成功状态，解析数据...');
      console.log('pagePath:', response.data.data.pagePath);
      console.log('fileList:', response.data.data.fileList);
      
      return {
        success: true,
        data: response.data.data
      };
    } else {
      console.warn('接口返回失败状态:', response.data.code);
      console.warn('错误消息:', response.data.msg);
      
      return {
        success: false,
        error: response.data.msg || '接口调用失败'
      };
    }
  } catch (error) {
    console.error('=== HTTP请求异常 ===');
    console.error('错误类型:', error.name);
    console.error('错误消息:', error.message);
    console.error('错误堆栈:', error.stack);
    
    if (error.response) {
      // 服务器响应了错误状态码
      console.error('服务器响应错误:');
      console.error('状态码:', error.response.status);
      console.error('状态文本:', error.response.statusText);
      console.error('响应头:', error.response.headers);
      console.error('响应数据:', error.response.data);
    } else if (error.request) {
      // 请求已发出但没有收到响应
      console.error('网络请求无响应:');
      console.error('请求对象:', error.request);
    } else {
      // 其他错误
      console.error('请求配置错误:', error.config);
    }
    
    return {
      success: false,
      error: error.message || '网络请求失败'
    };
  }
};
